package study.utils;

/**
 * 校验码计算
 * @Author 刘伟涛
 * @Date 2024/8/29 13:11
 **/
public class CheckCodeCalculationUtils {

    public static String handle(String hexValues){
        // 去除所有的连字符
        hexValues = hexValues.replaceAll(" ", "").trim();
        // 获取两个字符作为一个字节
        String str = hexValues.substring(0,2);
        int cumulativeXor = Integer.parseInt(str, 16);

        for (int i = 2; i < hexValues.length(); i += 2) {
            // 获取两个字符作为一个字节
            str = hexValues.substring(i, i + 2);
            cumulativeXor += Integer.parseInt(str, 16);

        }

        cumulativeXor=cumulativeXor%256;
        // 将结果十进制转换为十六进制表示
        String finalHexXor = Integer.toHexString(cumulativeXor).toUpperCase();

        // 输出最终的结果
        System.out.println("最终的异或结果是: 0x" + finalHexXor);
        return finalHexXor;
    }

}
